package cn.smile.business.core;

import cn.smile.bean.entity.core.ReqWithoutInfo;
import cn.smile.bean.form.core.without.ReqWithoutAddForm;
import cn.smile.commons.domain.IBaseService;
import org.springframework.http.HttpMethod;

import java.util.Date;
import java.util.Map;

/**
 * @author smile-jt
 */
public interface IReqWithoutService extends IBaseService<ReqWithoutInfo> {

    /**
     * 新增外部请求记录
     *
     * @param form 新增参数
     * @return 新增结果
     */
    Boolean addInfo(ReqWithoutAddForm form);

    /**
     * 请求外部接口
     *
     * @param url    请求url
     * @param params 参数
     * @param method 请求方法
     * @param isRec  是否记录数据库(true-是, false-否)
     * @return 返回结果
     */
    String reqWithOutUrl(String url, Map<String, Object> params, HttpMethod method, Boolean isRec);

    /**
     * 请求外部接口
     *
     * @param url    请求url
     * @param params 参数
     * @param method 请求方法
     * @param clazz  返回对象类型
     * @param <T>    对象泛型
     * @return 返回结果
     */
    <T> T reqWithOutUrl(String url, Map<String, Object> params, HttpMethod method, Class<T> clazz, Boolean isRec);

    /**
     * 定时任务清除日志
     *
     * @param endDate 清除日志截止时间
     */
    void taskDelInfo(Date endDate);
}
